let api = [];
const apiDocListSize = 1
api.push({
    name: 'default',
    order: '1',
    list: []
})
api[0].list.push({
    alias: 'MsgInfoController',
    order: '1',
    link: '消息推送记录表_前端控制器',
    desc: '消息推送记录表 前端控制器',
    list: []
})
api[0].list[0].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/info/page',
    desc: '分页查询消息推送记录表数据',
});
api[0].list[0].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/info/list',
    desc: '列表查询消息推送记录表数据',
});
api[0].list[0].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/info/detail',
    desc: '查询消息推送记录表详情数据',
});
api[0].list[0].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/info/getById',
    desc: '根据主键ID查询消息推送记录表详情数据',
});
api[0].list[0].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/info/save',
    desc: '保存消息推送记录表数据',
});
api[0].list[0].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/info/delete',
    desc: '删除消息推送记录表数据',
});
api[0].list[0].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/info/deleteById/{id}',
    desc: '根据主键ID删除',
});
api[0].list.push({
    alias: 'MsgStorageController',
    order: '2',
    link: '消息配置信息表_前端控制器',
    desc: '消息配置信息表 前端控制器',
    list: []
})
api[0].list[1].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/storage/page',
    desc: '分页查询消息配置信息表数据',
});
api[0].list[1].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/storage/list',
    desc: '列表查询消息配置信息表数据',
});
api[0].list[1].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/storage/detail',
    desc: '查询消息配置信息表详情数据',
});
api[0].list[1].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/storage/getById',
    desc: '根据主键ID查询消息配置信息表详情数据',
});
api[0].list[1].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/storage/save',
    desc: '保存消息配置信息表数据',
});
api[0].list[1].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/storage/delete',
    desc: '删除消息配置信息表数据',
});
api[0].list[1].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/storage/deleteById/{id}',
    desc: '根据主键ID删除消息配置信息表数据',
});
api[0].list[1].list.push({
    order: '8',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/storage/send',
    desc: '测试配置的是否有效',
});
api[0].list.push({
    alias: 'MsgTemplateController',
    order: '3',
    link: '消息模板表_前端控制器',
    desc: '消息模板表 前端控制器',
    list: []
})
api[0].list[2].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/template/page',
    desc: '分页查询消息模板表数据',
});
api[0].list[2].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/template/list',
    desc: '列表查询消息模板表数据',
});
api[0].list[2].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/template/detail',
    desc: '查询消息模板表详情数据',
});
api[0].list[2].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/template/getById',
    desc: '根据主键ID查询消息模板表详情数据',
});
api[0].list[2].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/template/save',
    desc: '保存消息模板表数据',
});
api[0].list[2].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/template/delete',
    desc: '删除消息模板表数据',
});
api[0].list[2].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/message/template/deleteById/{id}',
    desc: '根据主键ID删除',
});
api[0].list.push({
    alias: 'CommonController',
    order: '4',
    link: '页面公共请求_前端控制器',
    desc: '页面公共请求 前端控制器',
    list: []
})
api[0].list[3].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/getUserInfo',
    desc: '获取用户信息',
});
api[0].list[3].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/getRouters',
    desc: '获取用户菜单路由信息',
});
api[0].list[3].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict',
    desc: '获取字典信息',
});
api[0].list.push({
    alias: 'HomeController',
    order: '5',
    link: '首页请求_前端控制器',
    desc: '首页请求 前端控制器',
    list: []
})
api[0].list.push({
    alias: 'SysAreaInfoController',
    order: '6',
    link: '行政区域编码信息表_前端控制器',
    desc: '行政区域编码信息表 前端控制器',
    list: []
})
api[0].list[5].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/area/page',
    desc: '分页查询行政区域编码信息表数据',
});
api[0].list[5].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/area/list',
    desc: '列表查询行政区域编码信息表数据',
});
api[0].list[5].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/area/detail',
    desc: '查询行政区域编码信息表详情数据',
});
api[0].list[5].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/area/getById',
    desc: '根据主键ID查询行政区域编码信息表详情数据',
});
api[0].list[5].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/area/save',
    desc: '保存行政区域编码信息表数据',
});
api[0].list[5].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/area/delete',
    desc: '删除行政区域编码信息表数据',
});
api[0].list[5].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/area/deleteById/{id}',
    desc: '根据主键ID删除行政区域编码信息表数据',
});
api[0].list[5].list.push({
    order: '8',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/area/cascade',
    desc: '行政区域编码级联数据',
});
api[0].list.push({
    alias: 'SysDictDataController',
    order: '7',
    link: '枚举字段码值表_前端控制器',
    desc: '枚举字段码值表 前端控制器',
    list: []
})
api[0].list[6].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/data/page',
    desc: '分页查询枚举字段码值表数据',
});
api[0].list[6].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/data/list',
    desc: '列表查询枚举字段码值表数据',
});
api[0].list[6].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/data/detail',
    desc: '查询枚举字段码值表详情数据',
});
api[0].list[6].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/data/getById',
    desc: '根据主键ID查询枚举字段码值表详情数据',
});
api[0].list[6].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/data/save',
    desc: '保存枚举字段码值表数据',
});
api[0].list[6].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/data/delete',
    desc: '删除枚举字段码值表数据',
});
api[0].list[6].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/data/deleteById/{id}',
    desc: '根据Id删除',
});
api[0].list.push({
    alias: 'SysDictTypeController',
    order: '8',
    link: '枚举字段类型表_前端控制器',
    desc: '枚举字段类型表 前端控制器',
    list: []
})
api[0].list[7].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/type/page',
    desc: '分页查询枚举字段类型表数据',
});
api[0].list[7].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/type/list',
    desc: '列表查询枚举字段类型表数据',
});
api[0].list[7].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/type/detail',
    desc: '查询枚举字段类型表详情数据',
});
api[0].list[7].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/type/getById',
    desc: '根据主键ID查询枚举字段类型表详情数据',
});
api[0].list[7].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/type/save',
    desc: '保存枚举字段类型表数据',
});
api[0].list[7].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/type/delete',
    desc: '删除枚举字段类型表数据',
});
api[0].list[7].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/type/deleteById/{id}',
    desc: '根据Id删除',
});
api[0].list[7].list.push({
    order: '8',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/type/import',
    desc: '导入',
});
api[0].list[7].list.push({
    order: '9',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/type/refresh',
    desc: '刷新缓存',
});
api[0].list.push({
    alias: 'SysLoginLogController',
    order: '9',
    link: '登录日志表_前端控制器',
    desc: '登录日志表 前端控制器',
    list: []
})
api[0].list[8].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/login/log/page',
    desc: '分页查询登录日志表数据',
});
api[0].list[8].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/login/log/list',
    desc: '列表查询登录日志表数据',
});
api[0].list[8].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/login/log/detail',
    desc: '查询登录日志表详情数据',
});
api[0].list[8].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/login/log/getById',
    desc: '根据主键ID查询登录日志表详情数据',
});
api[0].list[8].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/login/log/save',
    desc: '保存登录日志表数据',
});
api[0].list[8].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/login/log/delete',
    desc: '删除登录日志表数据',
});
api[0].list[8].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/login/log/deleteById/{id}',
    desc: '根据主键ID删除登录日志表数据',
});
api[0].list.push({
    alias: 'SysOperLogController',
    order: '10',
    link: '操作日志表_前端控制器',
    desc: '操作日志表 前端控制器',
    list: []
})
api[0].list[9].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/oper/log/page',
    desc: '分页查询操作日志表数据',
});
api[0].list[9].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/oper/log/list',
    desc: '列表查询操作日志表数据',
});
api[0].list[9].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/oper/log/detail',
    desc: '查询操作日志表详情数据',
});
api[0].list[9].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/oper/log/getById',
    desc: '根据主键ID查询操作日志表详情数据',
});
api[0].list[9].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/oper/log/save',
    desc: '保存操作日志表数据',
});
api[0].list[9].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/oper/log/delete',
    desc: '删除操作日志表数据',
});
api[0].list[9].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/oper/log/deleteById/{id}',
    desc: '根据主键ID删除操作日志表数据',
});
api[0].list.push({
    alias: 'SysSeqInfoController',
    order: '11',
    link: '序列号表_前端控制器',
    desc: '序列号表 前端控制器',
    list: []
})
api[0].list[10].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/seq/page',
    desc: '分页查询序列号表数据',
});
api[0].list[10].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/seq/list',
    desc: '列表查询序列号表数据',
});
api[0].list[10].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/seq/detail',
    desc: '查询序列号表详情数据',
});
api[0].list[10].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/seq/getById',
    desc: '根据主键ID查询序列号表详情数据',
});
api[0].list[10].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/seq/save',
    desc: '保存序列号表数据',
});
api[0].list[10].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/seq/delete',
    desc: '删除序列号表数据',
});
api[0].list.push({
    alias: 'SysOrgInfoController',
    order: '12',
    link: '组织机构信息表_前端控制器',
    desc: '组织机构信息表 前端控制器',
    list: []
})
api[0].list[11].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/org/page',
    desc: '分页查询组织机构信息表数据',
});
api[0].list[11].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/org/list',
    desc: '列表查询组织机构信息表数据（树形列表）',
});
api[0].list[11].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/org/getAllOrgList',
    desc: '查询所有的组织机构数据（树形结构）',
});
api[0].list[11].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/org/detail',
    desc: '查询组织机构信息表详情数据',
});
api[0].list[11].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/org/getById',
    desc: '根据主键ID查询组织机构信息表详情数据',
});
api[0].list[11].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/org/save',
    desc: '保存组织机构信息表数据',
});
api[0].list[11].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/org/delete',
    desc: '删除组织机构信息表数据',
});
api[0].list[11].list.push({
    order: '8',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/org/deleteById/{id}',
    desc: '根据Id删除',
});
api[0].list.push({
    alias: 'SysParamInfoController',
    order: '13',
    link: '系统参数信息表_前端控制器',
    desc: '系统参数信息表 前端控制器',
    list: []
})
api[0].list[12].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/param/page',
    desc: '分页查询系统参数信息表数据',
});
api[0].list[12].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/param/list',
    desc: '列表查询系统参数信息表数据',
});
api[0].list[12].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/param/detail',
    desc: '查询系统参数信息表详情数据',
});
api[0].list[12].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/param/getById',
    desc: '根据主键ID查询系统参数信息表详情数据',
});
api[0].list[12].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/param/save',
    desc: '保存系统参数信息表数据',
});
api[0].list[12].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/param/delete',
    desc: '删除系统参数信息表数据',
});
api[0].list[12].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/param/deleteById/{id}',
    desc: '根据主键ID删除系统参数信息表数据',
});
api[0].list.push({
    alias: 'SysPostInfoController',
    order: '14',
    link: '岗位信息表_前端控制器',
    desc: '岗位信息表 前端控制器',
    list: []
})
api[0].list[13].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/page',
    desc: '分页查询岗位信息表数据',
});
api[0].list[13].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/list',
    desc: '列表查询岗位信息表数据',
});
api[0].list[13].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/getAllPostList',
    desc: '获取所有的岗位信息表数据',
});
api[0].list[13].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/detail',
    desc: '查询岗位信息表详情数据',
});
api[0].list[13].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/getById',
    desc: '根据主键ID查询岗位信息表详情数据',
});
api[0].list[13].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/save',
    desc: '保存岗位信息表数据',
});
api[0].list[13].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/delete',
    desc: '删除岗位信息表数据',
});
api[0].list[13].list.push({
    order: '8',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/deleteById',
    desc: '删除岗位信息表数据',
});
api[0].list.push({
    alias: 'SysPostUserController',
    order: '15',
    link: '用户岗位信息表_前端控制器',
    desc: '用户岗位信息表 前端控制器',
    list: []
})
api[0].list[14].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/user/page',
    desc: '分页查询用户岗位信息表数据',
});
api[0].list[14].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/user/list',
    desc: '列表查询用户岗位信息表数据',
});
api[0].list[14].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/user/detail',
    desc: '查询用户岗位信息表详情数据',
});
api[0].list[14].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/user/getById',
    desc: '根据主键ID查询用户岗位信息表详情数据',
});
api[0].list[14].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/user/save',
    desc: '保存用户岗位信息表数据',
});
api[0].list[14].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/post/user/delete',
    desc: '删除用户岗位信息表数据',
});
api[0].list.push({
    alias: 'SysResInfoController',
    order: '16',
    link: '资源信息表_前端控制器',
    desc: '资源信息表 前端控制器',
    list: []
})
api[0].list[15].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/page',
    desc: '分页查询资源信息表数据',
});
api[0].list[15].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/list',
    desc: '列表查询资源信息表数据（树形列表）',
});
api[0].list[15].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/getAllResList',
    desc: '查询所有的资源信息数据（树形结构）',
});
api[0].list[15].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/detail',
    desc: '查询资源信息表详情数据',
});
api[0].list[15].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/getById',
    desc: '根据主键ID查询资源信息表详情数据',
});
api[0].list[15].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/save',
    desc: '保存资源信息表数据',
});
api[0].list[15].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/delete',
    desc: '删除资源信息表数据',
});
api[0].list[15].list.push({
    order: '8',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/deleteById/{id}',
    desc: '根据Id删除',
});
api[0].list.push({
    alias: 'SysResUrlController',
    order: '17',
    link: '资源url表_前端控制器',
    desc: '资源url表 前端控制器',
    list: []
})
api[0].list[16].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/url/page',
    desc: '分页查询资源url表数据',
});
api[0].list[16].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/url/list',
    desc: '列表查询资源url表数据',
});
api[0].list[16].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/url/detail',
    desc: '查询资源url表详情数据',
});
api[0].list[16].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/url/getById',
    desc: '根据主键ID查询资源url表详情数据',
});
api[0].list[16].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/url/save',
    desc: '保存资源url表数据',
});
api[0].list[16].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/res/url/delete',
    desc: '删除资源url表数据',
});
api[0].list.push({
    alias: 'SysRoleInfoController',
    order: '18',
    link: '角色信息表_前端控制器',
    desc: '角色信息表 前端控制器',
    list: []
})
api[0].list[17].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/page',
    desc: '分页查询角色信息表数据',
});
api[0].list[17].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/list',
    desc: '列表查询角色信息表数据',
});
api[0].list[17].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/getAllRoleList',
    desc: '获取所有的角色信息表数据',
});
api[0].list[17].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/detail',
    desc: '查询角色信息表详情数据',
});
api[0].list[17].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/getById',
    desc: '根据主键ID查询角色信息表详情数据',
});
api[0].list[17].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/save',
    desc: '保存角色信息表数据',
});
api[0].list[17].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/delete',
    desc: '删除角色信息表数据',
});
api[0].list[17].list.push({
    order: '8',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/deleteById/{id}',
    desc: '根据Id删除',
});
api[0].list.push({
    alias: 'SysRoleResController',
    order: '19',
    link: '角色资源表_前端控制器',
    desc: '角色资源表 前端控制器',
    list: []
})
api[0].list[18].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/res/page',
    desc: '分页查询角色资源表数据',
});
api[0].list[18].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/res/list',
    desc: '列表查询角色资源表数据',
});
api[0].list[18].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/res/detail',
    desc: '查询角色资源表详情数据',
});
api[0].list[18].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/res/getById',
    desc: '根据主键ID查询角色资源表详情数据',
});
api[0].list[18].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/res/save',
    desc: '保存角色资源表数据',
});
api[0].list[18].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/res/delete',
    desc: '删除角色资源表数据',
});
api[0].list[18].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/role/res/saveBatch',
    desc: '保存角色资源表数据',
});
api[0].list.push({
    alias: 'SysTenantInfoController',
    order: '20',
    link: '租户信息表_前端控制器',
    desc: '租户信息表 前端控制器',
    list: []
})
api[0].list[19].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/tenant/page',
    desc: '分页查询租户信息表数据',
});
api[0].list[19].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/tenant/list',
    desc: '列表查询租户信息表数据',
});
api[0].list[19].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/tenant/detail',
    desc: '查询租户信息表详情数据',
});
api[0].list[19].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/tenant/getById',
    desc: '根据主键ID查询租户信息表详情数据',
});
api[0].list[19].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/tenant/save',
    desc: '保存租户信息表数据',
});
api[0].list[19].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/tenant/delete',
    desc: '删除租户信息表数据',
});
api[0].list[19].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/tenant/deleteById/{id}',
    desc: '根据Id删除',
});
api[0].list.push({
    alias: 'SysUserInfoController',
    order: '21',
    link: '用户信息表_前端控制器',
    desc: '用户信息表 前端控制器',
    list: []
})
api[0].list[20].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/page',
    desc: '分页查询用户信息表数据',
});
api[0].list[20].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/list',
    desc: '列表查询用户信息表数据',
});
api[0].list[20].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/getAllUserList',
    desc: '获取所有的用户信息表数据',
});
api[0].list[20].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/detail',
    desc: '查询用户信息表详情数据',
});
api[0].list[20].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/getById',
    desc: '根据主键ID查询用户信息表详情数据',
});
api[0].list[20].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/save',
    desc: '保存用户信息表数据',
});
api[0].list[20].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/delete',
    desc: '删除用户信息表数据',
});
api[0].list[20].list.push({
    order: '8',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/deleteById/{id}',
    desc: '根据Id删除',
});
api[0].list[20].list.push({
    order: '9',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/reset',
    desc: '重置用户密码',
});
api[0].list[20].list.push({
    order: '10',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/authInfo',
    desc: '查询用户认证信息',
});
api[0].list[20].list.push({
    order: '11',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/register',
    desc: '同步注册用户信息',
});
api[0].list[20].list.push({
    order: '12',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/updateProfile',
    desc: '修改当前登录用户信息',
});
api[0].list[20].list.push({
    order: '13',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/updateUserPwd',
    desc: '修改用户密码',
});
api[0].list.push({
    alias: 'SysUserRoleController',
    order: '22',
    link: '用户角色表_前端控制器',
    desc: '用户角色表 前端控制器',
    list: []
})
api[0].list[21].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/role/page',
    desc: '分页查询用户角色表数据',
});
api[0].list[21].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/role/list',
    desc: '列表查询用户角色表数据',
});
api[0].list[21].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/role/detail',
    desc: '查询用户角色表详情数据',
});
api[0].list[21].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/role/getById',
    desc: '根据主键ID查询用户角色表详情数据',
});
api[0].list[21].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/role/save',
    desc: '保存用户角色表数据',
});
api[0].list[21].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/user/role/delete',
    desc: '删除用户角色表数据',
});
api[0].list.push({
    alias: 'GenerateController',
    order: '23',
    link: '自动生成代码_前端控制器',
    desc: '自动生成代码 前端控制器',
    list: []
})
api[0].list[22].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/code/getTableList/{id}',
    desc: '查询表信息',
});
api[0].list[22].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/code/generate',
    desc: '创建代码',
});
api[0].list[22].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/code/download',
    desc: '下载代码',
});
api[0].list.push({
    alias: 'InstanceInfoController',
    order: '24',
    link: '实例信息表_前端控制器',
    desc: '实例信息表 前端控制器',
    list: []
})
api[0].list[23].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/ops/instance/page',
    desc: '分页查询实例信息表数据',
});
api[0].list[23].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/ops/instance/list',
    desc: '列表查询实例信息表数据',
});
api[0].list[23].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/ops/instance/detail',
    desc: '查询实例信息表详情数据',
});
api[0].list[23].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/ops/instance/getById',
    desc: '根据主键ID查询实例信息表详情数据',
});
api[0].list[23].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/ops/instance/save',
    desc: '保存实例信息表数据',
});
api[0].list[23].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/ops/instance/delete',
    desc: '删除实例信息表数据',
});
api[0].list[23].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/ops/instance/deleteById/{id}',
    desc: '根据主键ID删除实例信息表数据',
});
api[0].list.push({
    alias: 'SchemeInfoController',
    order: '25',
    link: '数据库信息表_前端控制器',
    desc: '数据库信息表 前端控制器',
    list: []
})
api[0].list[24].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/scheme/page',
    desc: '分页查询数据库信息表数据',
});
api[0].list[24].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/scheme/list',
    desc: '列表查询数据库信息表数据',
});
api[0].list[24].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/scheme/detail',
    desc: '查询数据库信息表详情数据',
});
api[0].list[24].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/scheme/getById',
    desc: '根据主键ID查询数据库信息表详情数据',
});
api[0].list[24].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/scheme/save',
    desc: '保存数据库信息表数据',
});
api[0].list[24].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/tool/scheme/delete',
    desc: '删除数据库信息表数据',
});
api[0].list.push({
    alias: 'FileInfoController',
    order: '26',
    link: '文件信息_前端控制器',
    desc: '文件信息 前端控制器',
    list: []
})
api[0].list[25].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/info/page',
    desc: '分页查询文件信息表数据',
});
api[0].list[25].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/info/list',
    desc: '列表查询文件信息表数据',
});
api[0].list[25].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/info/detail',
    desc: '查询文件信息表详情数据',
});
api[0].list[25].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/info/getById',
    desc: '根据主键ID查询文件信息表详情数据',
});
api[0].list[25].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/info/save',
    desc: '保存文件信息表数据',
});
api[0].list[25].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/info/delete',
    desc: '删除文件信息表数据',
});
api[0].list[25].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/info/deleteById/{id}',
    desc: '根据ID删除文件信息表数据',
});
api[0].list.push({
    alias: 'FileStorageController',
    order: '27',
    link: 'oss账户配置信息表_前端控制器',
    desc: 'OSS账户配置信息表 前端控制器',
    list: []
})
api[0].list[26].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/storage/page',
    desc: '分页查询OSS账户配置信息表数据',
});
api[0].list[26].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/storage/list',
    desc: '列表查询OSS账户配置信息表数据',
});
api[0].list[26].list.push({
    order: '3',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/storage/detail',
    desc: '查询OSS账户配置信息表详情数据',
});
api[0].list[26].list.push({
    order: '4',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/storage/getById',
    desc: '根据主键ID查询OSS账户配置信息表详情数据',
});
api[0].list[26].list.push({
    order: '5',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/storage/save',
    desc: '保存OSS账户配置信息表数据',
});
api[0].list[26].list.push({
    order: '6',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/storage/delete',
    desc: '删除OSS账户配置信息表数据',
});
api[0].list[26].list.push({
    order: '7',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/file/storage/deleteById/{id}',
    desc: '根据主键ID删除OSS账户配置信息表数据',
});
api[0].list.push({
    alias: 'DictApiController',
    order: '28',
    link: '枚举字段码值表_前端控制器',
    desc: '枚举字段码值表 前端控制器',
    list: []
})
api[0].list[27].list.push({
    order: '1',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/mapping',
    desc: '根据枚举类型查询枚举字典',
});
api[0].list[27].list.push({
    order: '2',
    deprecated: 'false',
    url: 'http://localhost:10000/api/admin/system/dict/data',
    desc: '根据枚举类型查询枚举字典',
});
document.onkeydown = keyDownSearch;
function keyDownSearch(e) {
    const theEvent = e;
    const code = theEvent.keyCode || theEvent.which || theEvent.charCode;
    if (code === 13) {
        const search = document.getElementById('search');
        const searchValue = search.value.toLocaleLowerCase();

        let searchGroup = [];
        for (let i = 0; i < api.length; i++) {

            let apiGroup = api[i];

            let searchArr = [];
            for (let i = 0; i < apiGroup.list.length; i++) {
                let apiData = apiGroup.list[i];
                const desc = apiData.desc;
                if (desc.toLocaleLowerCase().indexOf(searchValue) > -1) {
                    searchArr.push({
                        order: apiData.order,
                        desc: apiData.desc,
                        link: apiData.link,
                        list: apiData.list
                    });
                } else {
                    let methodList = apiData.list || [];
                    let methodListTemp = [];
                    for (let j = 0; j < methodList.length; j++) {
                        const methodData = methodList[j];
                        const methodDesc = methodData.desc;
                        if (methodDesc.toLocaleLowerCase().indexOf(searchValue) > -1) {
                            methodListTemp.push(methodData);
                            break;
                        }
                    }
                    if (methodListTemp.length > 0) {
                        const data = {
                            order: apiData.order,
                            desc: apiData.desc,
                            link: apiData.link,
                            list: methodListTemp
                        };
                        searchArr.push(data);
                    }
                }
            }
            if (apiGroup.name.toLocaleLowerCase().indexOf(searchValue) > -1) {
                searchGroup.push({
                    name: apiGroup.name,
                    order: apiGroup.order,
                    list: searchArr
                });
                continue;
            }
            if (searchArr.length === 0) {
                continue;
            }
            searchGroup.push({
                name: apiGroup.name,
                order: apiGroup.order,
                list: searchArr
            });
        }
        let html;
        if (searchValue === '') {
            const liClass = "";
            const display = "display: none";
            html = buildAccordion(api,liClass,display);
            document.getElementById('accordion').innerHTML = html;
        } else {
            const liClass = "open";
            const display = "display: block";
            html = buildAccordion(searchGroup,liClass,display);
            document.getElementById('accordion').innerHTML = html;
        }
        const Accordion = function (el, multiple) {
            this.el = el || {};
            this.multiple = multiple || false;
            const links = this.el.find('.dd');
            links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown);
        };
        Accordion.prototype.dropdown = function (e) {
            const $el = e.data.el;
            let $this = $(this), $next = $this.next();
            $next.slideToggle();
            $this.parent().toggleClass('open');
            if (!e.data.multiple) {
                $el.find('.submenu').not($next).slideUp("20").parent().removeClass('open');
            }
        };
        new Accordion($('#accordion'), false);
    }
}

function buildAccordion(apiGroups, liClass, display) {
    let html = "";
    if (apiGroups.length > 0) {
        if (apiDocListSize === 1) {
            let apiData = apiGroups[0].list;
            let order = apiGroups[0].order;
            for (let j = 0; j < apiData.length; j++) {
                html += '<li class="'+liClass+'">';
                html += '<a class="dd" href="#_'+order+'_'+apiData[j].order+'_' + apiData[j].link + '">' + apiData[j].order + '.&nbsp;' + apiData[j].desc + '</a>';
                html += '<ul class="sectlevel2" style="'+display+'">';
                let doc = apiData[j].list;
                for (let m = 0; m < doc.length; m++) {
                    let spanString;
                    if (doc[m].deprecated === 'true') {
                        spanString='<span class="line-through">';
                    } else {
                        spanString='<span>';
                    }
                    html += '<li><a href="#_'+order+'_' + apiData[j].order + '_' + doc[m].order + '_' + doc[m].desc + '">' + apiData[j].order + '.' + doc[m].order + '.&nbsp;' + spanString + doc[m].desc + '<span></a> </li>';
                }
                html += '</ul>';
                html += '</li>';
            }
        } else {
            for (let i = 0; i < apiGroups.length; i++) {
                let apiGroup = apiGroups[i];
                html += '<li class="'+liClass+'">';
                html += '<a class="dd" href="#_'+apiGroup.order+'_' + apiGroup.name + '">' + apiGroup.order + '.&nbsp;' + apiGroup.name + '</a>';
                html += '<ul class="sectlevel1">';

                let apiData = apiGroup.list;
                for (let j = 0; j < apiData.length; j++) {
                    html += '<li class="'+liClass+'">';
                    html += '<a class="dd" href="#_'+apiGroup.order+'_'+ apiData[j].order + '_'+ apiData[j].link + '">' +apiGroup.order+'.'+ apiData[j].order + '.&nbsp;' + apiData[j].desc + '</a>';
                    html += '<ul class="sectlevel2" style="'+display+'">';
                    let doc = apiData[j].list;
                    for (let m = 0; m < doc.length; m++) {
                       let spanString;
                       if (doc[m].deprecated === 'true') {
                           spanString='<span class="line-through">';
                       } else {
                           spanString='<span>';
                       }
                       html += '<li><a href="#_'+apiGroup.order+'_' + apiData[j].order + '_' + doc[m].order + '_' + doc[m].desc + '">'+apiGroup.order+'.' + apiData[j].order + '.' + doc[m].order + '.&nbsp;' + spanString + doc[m].desc + '<span></a> </li>';
                   }
                    html += '</ul>';
                    html += '</li>';
                }

                html += '</ul>';
                html += '</li>';
            }
        }
    }
    return html;
}